// 云函数入口文件
const cloud = require('wx-server-sdk')
const request = require('request-promise')

cloud.init({
  env: 'cloud1-8g3kxnyv58f85f9b'
})

// 微信小程序配置
const APPID = 'wx10b43811fd078207'; 
const SECRET = 'a7e7893c0e2bc3185f59974337699404';

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  const code = event.code
  
  // 如果配置了APPID和SECRET，则获取真正的session_key
  if (APPID && SECRET && code) {
    try {
      // 调用微信接口获取session_key
      const url = `https://api.weixin.qq.com/sns/jscode2session?appid=${APPID}&secret=${SECRET}&js_code=${code}&grant_type=authorization_code`;
      const result = await request({
        url: url,
        json: true
      });
      
      // 返回获取到的数据
      return {
        openid: result.openid || wxContext.OPENID,
        unionid: result.unionid || wxContext.UNIONID,
        session_key: result.session_key,
        env: cloud.DYNAMIC_CURRENT_ENV,
      };
    } catch (error) {
      console.error('获取session_key失败', error);
      // 如果获取失败，返回上下文中的openid
      return {
        openid: wxContext.OPENID,
        unionid: wxContext.UNIONID,
        session_key: '',
        env: cloud.DYNAMIC_CURRENT_ENV,
        error: error.message
      };
    }
  } else {
    // 如果没有配置APPID和SECRET，直接返回openid
    return {
      openid: wxContext.OPENID,
      unionid: wxContext.UNIONID,
      session_key: '',
      env: cloud.DYNAMIC_CURRENT_ENV,
      note: '请在云函数中配置APPID和SECRET以获取真正的session_key'
    };
  }
}
